﻿; 设置按键间隔为60毫秒，电脑快可降低
SetKeyDelay, 60
; 自定义函数
RemoveToolTip() {
  ToolTip
}
GetExcel() {
  try {
    return ComObjActive("Excel.Application")
  } catch, e {
    MsgBox, , , 等待COM注册, 0.6
    return ComObjActive("Excel.Application")
  }
}
return
; 只用于excel的快捷键
#IfWinActive ahk_class XLMAIN
  ; 点击鼠标中键，触发选择性粘贴，仅粘贴值
  MButton::Send {LButton}^!vuv{Enter}
  ; 忽略隐藏的单元格，对选中区域求和，将结果存入剪贴板
  XButton1::
    Send, !;
    xl := GetExcel()
    Clipboard := xl.WorksheetFunction.Sum(xl.Selection)
    xl :=
    ToolTip, % Clipboard
    SetTimer, RemoveToolTip, -600
    return
  ; 单击小键盘回车，向右移动一格，双击则回到行首并换行
  NumpadEnter::
    if (NE_n > 0)
      NE_n += 1
    else {
      NE_n := 1
      SetTimer, ExcelNumEnt, -240
    }
    return
    ExcelNumEnt:
      if (NE_n == 1)
        Send, {Tab}
      else
        Send, {Left}^{Left}{Enter}
      NE_n := 0
      return
; 用于全局的快捷键
#IfWinActive
